1. Field of the Invention
The present invention relates to a motor control device for controlling a motor which is used as a driving source of a machine such as a robot, machine tool, or industrial machine.
2. Description of the Related Art
A motor control device for controlling a motor which is used as a driving source of a machine such as a robot, machine tool, or industrial machine is provided with a feedback control in order that a control target such as a rotary driven motor alone, or a machine cooperating with a motor as a driving source (including attachments such as a workpiece on which the machine acts in some cases) (hereinafter, simply referred to as “control target”) is operated in accordance with a command. Examples of the feedback control include a speed feedback control in which a speed of a control target follows a speed command and a position feedback control in which a position of a control target follows a position command.
It is known that a feed-forward control is provided in addition to a feedback control for attaining higher responsiveness to a command. Examples of the feed-forward control for a command include a speed feed-forward control which is added to a speed feedback control in order to increase the responsiveness to a speed command and a position feed-forward control which is added to a position feedback control in order to increase the responsiveness to a position command.
FIG. 9 is block diagram illustrating a conventional general motor control device with a feedback control and feed-forward control. Hereinafter, components indicated by the same reference number are components having the same function. A case in which a motor control device 100 controls the operation of a control target 200 will be described.
As mentioned above, examples of the control target 200 include a motor alone, and a motor and a machine cooperating with the motor as a driving source (including attachments such as a workpiece on which the machine acts in some cases). For example, it is assumed that a motor torque constant of the control target 200 is set to Kt, a motor inertia to J, and a friction coefficient to C. The differential operator is represented by s. A transfer function of the control target 200 is represented by “Kt/(Js+C)”.
A controller 101 carries out a speed feedback control in which an actual speed of the control target 200 follows a speed command. An error between a speed fed back from the control target 200 and the speed command is input to the controller 101, and the controller 101 outputs a torque command. The controller 101 is realized by a PI control or a PID control. For example, when the controller 101 is realized by a PI control as illustrated in FIG. 9, setting the integral gain to K1 and the proportional gain to K2, the transfer function of the controller 101 is represented by “K1/s+K2”.
The transfer function of a speed feed-forward (VFF) control block 104 is set to “(Js+C)/Kt” which is an inverse function of the transfer function of the control target 200 “Kt/(Js+C)” in order to realize a highly responsive control to a speed command. Here, when the controller 101, speed feed-forward control block 104 and control target 200 are considered as one system (hereinafter, referred to as “speed control system”), an input of the speed control system can be regarded as a “speed command” and an output of the speed control system can be regarded as an “actual speed of the control target 200” fed back from the control target 200. When the transfer function of the speed feed-forward control block 104 is designed to be the inverse function (inverse model in the case of nonlinear) of the transfer function of the control target 200, the transfer function of the speed control system is “1”, thereby realizing a high responsiveness to a speed command.
In an example illustrated in FIG. 9, a position gain of a position gain block 102 of a position feedback control in which the position of the control target 200 follows a position command is set to Kp. The error between a position obtained by integrating the speed of the control target 200 in an integration block 103 and the position command is multiplied by a position gain Kp to be used as a part of the above-mentioned speed command. The transfer function of the integration block 103 is represented by “1/s”.
When the speed control system whose transfer function is “1”, the position gain 102, the integral gain block 103 whose transfer function is “1/s”, and a position feed-forward (PFF) block 105 are considered as one system (hereinafter, referred to as a “position control system”), an input of the position control system can be regarded as a “position command”, and the output of the position control system can be regarded as “the actual position of the control target 200” fed back from the control target 200. As mentioned above, since the transfer function of the speed control system comprising the controller 101, the speed feed-forward control block 104 and the control target 200 is “1”, when the transfer function of the position feed-forward control block 105 is designed to an inverse function “s” of the transfer function “1/s” of the integral gain block 103, the transfer function of the position control system is also “1”, thereby realizing a high responsiveness to the position control system.
When the transfer function of the speed control system can be set to “1” as mentioned above, the design of the position feed-forward control block 105 is facilitated since the transfer function of the position feed-forward control block 105 can be designed to be the inverse function “s” of the transfer function “1/s” of the integral gain block 103. The design of the speed feed-forward control block 104 and the position feed-forward control block 105 of the motor control device 100 thus needs detail information on a variety of constants of the control target 200.
In general, it may be difficult to grasp a variety of constants such as inertia and friction of a control target in a machine such as a robot, machine tool, or industrial machine. For example, as for an attachment which is attached to a machine in a robot or an industrial machine, or as for an object to be processed in a machine tool, when the size or the weight thereof fluctuates, the inertia or friction thereof fluctuates. A parameter such as a parameter for the friction of a machine changes also due to secular change. The parameter such as a parameter for a friction fluctuates also depending on the position of a driven body driven by a motor. Further, inertia also fluctuates depending on the position of a driven body.
As mentioned above, a method is conventionally known in which a parameter of feed-forward control is determined by using adaptive control in order to realize a high responsiveness even when a variety of constants of a control target are unknown or uncertain.
For example, Japanese Laid-open Patent Publication No. H3-242703 discloses a method in which in an electric motor which drives a robot arm, a parameter of a position feed-forward control is adaptively determined by using a steepest descent method algorithm so that the position error becomes small in order to realize high command responsiveness even when inertia largely fluctuates since the inertia largely fluctuates in accordance with the movement of the arm.
As another example, Japanese Laid-open Patent Publication No. 2008-171165 discloses a method in which an optimum torque command is output corresponding to a control target including a load which fluctuates depending on a rotation angle by adaptively identifying a torque offset due to the effect of inertia and a gravity with respect to a control target and by carrying out feed-forward control by correcting a torque command using the torque offset.
As mentioned above, when the transfer function of a speed feed-forward control of a motor control device is designed to be the inverse model of a control target, a high responsiveness to a speed command can be realized. When the transfer function of the speed feed-forward control can be optimally designed, a position feed-forward control having a high responsiveness can be relatively easily designed. It is therefore very important to accurately grasp detailed information about a variety of constants of a control target when a speed feed-forward control is designed.
However, when a feed-forward control of a motor control device is designed, in cases in which a variety of constants of a control target are not accurately grasped for some reasons, the completed feed-forward control is not necessarily said to be an optimal one and it is not necessarily said that a high responsiveness to a command is realized.
In particular, in cases in which a control target which a motor control device drives is one whose inertia and friction fluctuate, it is very difficult to obtain detailed information about a variety of constants of a control target and it is also difficult to increase the responsiveness to a command of the motor control device.
For example, in the inventions disclosed in Japanese Laid-open Patent Publication No. H3-242703 and Japanese Laid-open Patent Publication No. 2008-171165, although a parameter relating to inertia of a control target is determined using adaptive control to carry out a feed-forward control, a parameter relating to a friction of the control target is not considered. The inventions described in Japanese Laid-open Patent Publication No. H3-242703 and Japanese Laid-open Patent Publication No. 2008-171165 thus have a problem that, although a control target whose inertia fluctuates can be dealt with, an optimum feed-forward control cannot be carried out for a control target whose friction fluctuates.